iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 17
1
Everything on Azure

Azure Service 實作 ( Blockchain、AI、 Serverless Architecture)系列 第 17

17. 使用 Azure 語音服務 API 將聲音轉為文字

  • 分享至 

  • xImage
  •  

簡介:

這套 API 包含 語音轉換文字文字轉換語音功能,雖然 Chrome 本身就提供了一套 SpeechRecognition,不過我們今天還是來試一下 Azure 的 Speech to Text API。

步驟:

1.先參考此文件產生金鑰:https://docs.microsoft.com/zh-tw/azure/cognitive-services/speech-service/get-started

2.查看相關 API 文件:https://docs.microsoft.com/zh-tw/azure/cognitive-services/speech-service/rest-apis#speech-to-text

3.錄製聲音

筆者隨意錄製了個測試的語音,這邊如果要辨識 15 秒以上的語音必須使用他們的 SDK,因為他們的 REST API 不支援 15 秒以上的語音檔案。

4.查看文件的範例請求
https://ithelp.ithome.com.tw/upload/images/20181028/20112426MZXB2kX5aK.png

使用 Postman 測試:

加上參數
https://ithelp.ithome.com.tw/upload/images/20181028/20112426Cuzw8ZSPq8.png

加上金鑰
https://ithelp.ithome.com.tw/upload/images/20181028/20112426EVTgYfAqnE.png

最後上傳聲音檔案後按下送出,等待幾秒後即可看到回傳的辨識資料。
https://ithelp.ithome.com.tw/upload/images/20181028/20112426a5VxfIlieR.png

程式範例:

const path = require('path');
const fs = require('fs');
const https = require('https');

const filepath = '填上檔案位置';

const mediaStream = fs.createReadStream(filepath);

const options = {
  host: "westus.stt.speech.microsoft.com",
  port: 443,
  path: '/speech/recognition/conversation/cognitiveservices/v1?language=zh-TW&format=detailed',
  method: "POST",
  headers: {
    "Ocp-Apim-Subscription-Key": "填上金鑰",
  }
};

const req = https.request(options, res => {
  console.log(`Status Code: ${res.statusCode}\r\n`);
  res.on('data', function (data) {
    console.log(`回傳資料為:\r\n${data.toString()}`);
  });
});

req.on('drain', function () {
  console.log('drain', new Date());
  mediaStream.resume();
});

mediaStream.on('end', function () {
  console.log('uploaded finish');
});

req.on('error', function (err) {
  console.error('cannot send file to ' + target + ': ' + err);
});

mediaStream.pipe(req);

也可直接使用 cURL

curl --request POST \
  --url 'https://westus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=zh-TW&format=detailed' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --header 'Ocp-Apim-Subscription-Key: 填上金鑰' \
  --header 'content-type: multipart/form-data; boundary=----WebKitFormBoundaryABC' \
  --form audioFile=@/Users/Desktop/test1111.wav

上一篇
16. 使用 Azure Bing Search API
下一篇
18. 使用 Azure Speaker Recognition API 由聲音辨識人物 (上)
系列文
Azure Service 實作 ( Blockchain、AI、 Serverless Architecture)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言